package com.greenyoung.pwiki.oss.service.impl;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.greenyoung.pwiki.oss.dao.OssFileDao;
import com.greenyoung.pwiki.oss.entity.OssFileEntity;
import com.greenyoung.pwiki.oss.service.OssFileService;
import com.greenyoung.pwiki.oss.utils.PageUtils;
import com.greenyoung.pwiki.oss.utils.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.util.Set;


@Service("ossService")
public class OssFileServiceImpl extends ServiceImpl<OssFileDao, OssFileEntity> implements OssFileService {
    @Autowired
    OssFileDao ossFileDao;

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        IPage<OssFileEntity> page = this.page(
                new Query<OssFileEntity>().getPage(params)
        );

        return new PageUtils(page);
    }

    /**
     * 根据用户id查询其对应的文件，以分页形式返回
     *
     * @param queryParams 查询参数，可以有分页大小、当前页、排序等。如果为空，那么默认当前页是1，页大小是10
     * @param userId      用户id
     * @return 查询到的文件实体列表经PageUtils进行包装
     */
    @Override
    public PageUtils queryPageByUserId(Map<String, Object> queryParams, Long userId) {
        IPage<OssFileEntity> page = new Query<OssFileEntity>().getPage(queryParams);
        IPage<OssFileEntity> entityPage = ossFileDao.selectPageByUserId(page, userId);
        return new PageUtils(entityPage);
    }

}
